home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #3 / Amiga Plus CD - 2002 - No. 03.iso / AmiSoft / Util / Boot / Memtrailer.readme < prev    next >
Text File  |  2003-02-24  |  4KB  |  111 lines

  1. Short:    Allocates 16/32 bytes for mem-protection, Ver 1.7
  2. Author:   p-k@htp-tel.de (Peter Keunecke)
  3. Uploader: p-k@htp-tel.de (Peter Keunecke)
  4. Version:  1.7
  5. Type:     util/boot
  6. Requires: AmigaOS 2.04+ (V37)
  7.  
  8.  
  9.  Changes:
  10.  ~~~~~~~
  11. In 1.3: Bypass for zero and negative byte demands and for
  12.         largest-block orders to keep memory-tests, avail
  13.         and memory-clearing programs running.
  14.  
  15. In 1.4: Workaround for some interrupt-routines, which break
  16.         the Forbid()-state and call AllocMem() illegally,
  17.         should avoid the crashes with certain CPU-libraries.
  18.  
  19. In 1.5: For the same reason again, a call for CacheClearU()
  20.         has been added to the patch-installation, to protect
  21.         those tasks, that ignore the Forbid(), from running
  22.         into suicide under special racing-conditions.
  23.  
  24. In 1.6: FreeMem(0, x) bypass to avoid MuForce ZeroPage-Hits.
  25.         MuForce takes much more care of it than the AmigaOS.
  26.  
  27. In 1.7: Supports 32-byte alignments for WarpOS allocations.
  28.         Thus MemTrailer has an optional 32 byte switch now.
  29.         The signature consists of a matchword and a pointer.
  30.         The FreeMem() patch is installed before AllocMem().
  31.  
  32.  
  33.  Description:
  34.  ~~~~~~~~~~~
  35. MemTrailer is a shell-command for the startup-sequence that
  36. patches the AllocMem() and the FreeMem() exec-functions. It
  37. adds 16 or 32 bytes as a trailer to prevent trashed memory.
  38.  
  39. Because some programs make illegal accesses past the end of
  40. their own memory-allocations or try to use FreeMem() with an
  41. unaligned argument pointing a few bytes out of bounds, you
  42. may sometimes get a delayed and unexpected Guru-Meditation.
  43.  
  44. With the debug-tools MungWall, WipeOut and MuForce together
  45. with SegTracker you can check your system for this type of
  46. troublemakers. But these programs are not for permanent use,
  47. since they are complex and need quite an amount of CPU-time.
  48.  
  49. In order to use less CPU-time, I made MemTrailer as simple
  50. as possible with the intention to fix only the most commonly
  51. situations where illegal memory-accesses could occur. Unlike
  52. the debug-tools, MemTrailer never displays any messages.
  53.  
  54. MemTrailer patches AllocMem() to get additional 16/32 bytes
  55. for each allocation and sets up a signature pointing to the
  56. top of the memblock. These bytes are sacrificed to protect
  57. other programs from memory-corruption and the system getting
  58. Guru-Meditations. Usually FreeMem() cleans up all as normal.
  59.  
  60. Whenever FreeMem() cannot find a valid signature in the last
  61. 6 bytes, all the additional bytes are left behind in memory.
  62. Ok, this is not a real memory-protection, but it helps a bit.
  63. Since WarpOS has its own memory management, its applications
  64. are not affected directly by MemTrailer.
  65.  
  66.  
  67.  Installation and usage:
  68.  ~~~~~~~~~~~~~~~~~~~~~~
  69. Put the command MemTrailer into C: or whereever you like.
  70. Make some tests, starting MemTrailer from the Shell first,
  71. before you change your startup-sequence and booting fails!!
  72. I suggest to install PoolMem for faster memory-allocations.
  73.  
  74. Add a line to your S:startup-sequence close to the bottom or
  75. at least after LoadWB and call "MemTrailer" just without Run.
  76.                                 ~~~~~~~~~~
  77. If you use WarpOS or anything else, which needs a 32-byte
  78. alignment for its allocations, use "MemTrailer 32" instead.
  79.                                     ~~~~~~~~~~~~~
  80.  
  81.  startup-sequence:
  82.  
  83.  Setpatch QUIET
  84.  ...
  85.  PoolMem  >NIL: INSTALL KEEPSORTED PUDDLESIZE 16384
  86.  ...
  87.  LoadWB
  88.  ...
  89.  MemTrailer     (or MemTrailer 32)
  90.  EndCLI
  91.  
  92.  
  93.  
  94. It would be nice, if you could give me some feedback whether
  95. MemTrailer is working on your system and on which hardware
  96. and software it runs or not, because the only system where
  97. I'm developing and testing my software is WinUAE and OS 3.1.
  98.  
  99. Special thanx to Andreas Balke, Marcin Kurek and many others
  100. for their reports, suggestions and beta-testing.
  101.  
  102.  
  103.  Distribution:
  104.  ~~~~~~~~~~~~
  105. The program and its sourcecode are FreeWare. I don't give any
  106. warranties. You're using the program on your own risk and you
  107. are responsible for any damage it could cause to your system!
  108.  
  109.  
  110.  Peter Keunecke
  111.